package com.itheima.controller;

import com.itheima.domain.Code;
import com.itheima.domain.Result;
import com.itheima.exception.BusinessException;
import com.itheima.exception.SystemException;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

//异常处理类
@Component
@ControllerAdvice
@ResponseBody
public class ExceptionControllerAdvice {

    //业务异常，一般有用用户的不规范操作引起的  //传入的参数均为异常信息
    @ExceptionHandler(BusinessException.class)
     public Result doBusinessException(BusinessException e){
         return new Result(Code.OPERATOR_EXCEPTION,e.getMessage());
     }

    //业务异常，一般有用用户的不规范操作引起的
   @ExceptionHandler(SystemException.class)
    public Result doSystemException(SystemException e){
        //这一类信息应该保存起来，给运维或者开发人员看，告诉用户一个友好的提示
         return new Result(Code.SYSTEM_EXCEPTION,"操作不当，请规范行车");
    }

    //业务异常，一般有用用户的不规范操作引起的
    @ExceptionHandler(Exception.class)
    public Result doException(Exception e){
        //这一类信息应该保存起来，给运维或者开发人员看，告诉用户一个友好的提示
        return new Result(Code.OTHER_EXCEPTION,"请联系客服，电话:xxx-xxx-xxx");
    }

}
